using MediatR;
using S.O.Domain.Dto.Output;
using S.O.ErrorCode;

namespace S.O.Api.Read.Application.Command.Medical
{
    /// <summary>
    /// 根据患者ID获取挂号记录列表命令
    /// 供患者端使用，查看自己的挂号历史和当前挂号状态
    /// </summary>
    public class GetRegistrationByPatientCommand : IRequest<APIPaging<GetRegistrationListDto>>
    {
        /// <summary>
        /// 页码
        /// </summary>
        public int PageIndex { get; set; } = 1;
        
        /// <summary>
        /// 页大小
        /// </summary>
        public int PageSize { get; set; } = 10;
        
        /// <summary>
        /// 患者ID
        /// </summary>
        public long PatientId { get; set; }
        
        /// <summary>
        /// 挂号状态（可选，如：待诊、就诊中、已完成、已取消）
        /// </summary>
        public string? Status { get; set; }
        
        /// <summary>
        /// 开始日期（可选）
        /// </summary>
        public DateTime? StartDate { get; set; }
        
        /// <summary>
        /// 结束日期（可选）
        /// </summary>
        public DateTime? EndDate { get; set; }
    }
}